home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Merciful 1
/
Merciful - Disc 1.iso
/
software
/
d
/
devpak
/
devpakv3.01kickstartv1.3b.dms
/
devpakv3.01kickstartv1.3b.adf
/
include
/
exec
/
libraries.i
< prev
next >
Wrap
Text File
|
1991-11-20
|
3KB
|
122 lines
IFND EXEC_LIBRARIES_I
EXEC_LIBRARIES_I SET 1
**
** $Filename: exec/libraries.i $
** $Release: 1.3 $
**
**
**
** (C) Copyright 1985,1986,1987,1988 Commodore-Amiga, Inc.
** All Rights Reserved
**
IFND EXEC_NODES_I
INCLUDE "exec/nodes.i"
ENDC ; EXEC_NODES_I
*------ Special Constants ---------------------------------------
LIB_VECTSIZE EQU 6
LIB_RESERVED EQU 4
LIB_BASE EQU $FFFFFFFA * (-LIB_VECTSIZE)
LIB_USERDEF EQU LIB_BASE-(LIB_RESERVED*LIB_VECTSIZE)
LIB_NONSTD EQU LIB_USERDEF
*----------------------------------------------------------------
*
* Library Definition Macros
*
*----------------------------------------------------------------
*------ LIBINIT sets base offset for library function definitions:
LIBINIT MACRO * [baseOffset]
IFC '\1',''
COUNT_LIB SET LIB_USERDEF
ENDC
IFNC '\1',''
COUNT_LIB SET \1
ENDC
ENDM
*------ LIBDEF is used to define each library function entry:
LIBDEF MACRO * libraryFunctionSymbol
\1 EQU COUNT_LIB
COUNT_LIB SET COUNT_LIB-LIB_VECTSIZE
ENDM
*----------------------------------------------------------------
*
* Standard Library Functions
*
*----------------------------------------------------------------
LIBINIT LIB_BASE
LIBDEF LIB_OPEN
LIBDEF LIB_CLOSE
LIBDEF LIB_EXPUNGE
LIBDEF LIB_EXTFUNC * reserved *
*----------------------------------------------------------------
*
* Standard Library Data Structure
*
*----------------------------------------------------------------
STRUCTURE LIB,LN_SIZE
UBYTE LIB_FLAGS
UBYTE LIB_pad
UWORD LIB_NEGSIZE * number of bytes before LIB
UWORD LIB_POSSIZE * number of bytes after LIB
UWORD LIB_VERSION * major
UWORD LIB_REVISION * minor
APTR LIB_IDSTRING * identification
ULONG LIB_SUM * the checksum itself
UWORD LIB_OPENCNT * number of current opens
LABEL LIB_SIZE
*------ LIB_FLAGS bit definitions:
BITDEF LIB,SUMMING,0 * we are currently checksumming
BITDEF LIB,CHANGED,1 * we have just changed the lib
BITDEF LIB,SUMUSED,2 * set if we should bother to sum
BITDEF LIB,DELEXP,3 * delayed expunge
*----------------------------------------------------------------
*
* Function Invocation Macros
*
*----------------------------------------------------------------
*------ CALLLIB for calling functions where A6 is already correct:
CALLLIB MACRO * functionOffset
IFGT NARG-1
FAIL !!! CALLLIB MACRO - too many arguments !!!
ENDC
JSR \1(A6)
ENDM
*------ LINKLIB for calling functions where A6 is incorrect:
LINKLIB MACRO * functionOffset,libraryBase
IFGT NARG-2
FAIL !!! LINKLIB MACRO - too many arguments !!!
ENDC
MOVE.L A6,-(SP)
MOVE.L \2,A6
CALLLIB \1
MOVE.L (SP)+,A6
ENDM
ENDC ; EXEC_LIBRARIES_I